﻿using System.Linq;
using Utility.Persistence_Service;
using Utility.Persistence_Service.Implementations;

namespace Application_Core.Bauteil_Component.Data_Access_Layer.Implementations
{
    internal class FertigungsauftragRepositoryImpl : RepositoryImpl<Fertigungsauftrag>, FertigungsauftragRepository
    {
        public FertigungsauftragRepositoryImpl(UnitOfWork unitOfWork)
            : base(unitOfWork) { }

        /// <summary>
        /// Gibt den Fertigungsauftraga anhand der gegebenen Nummer zurück.
        /// </summary>
        /// <param name="fertigungsauftragsnummer">Fertigungsauftragsnummer</param>
        /// <returns>Fertigungsauftrag | null</returns>
        public Fertigungsauftrag FindByNummer(int fertigungsauftragsnummer)
        {
            return (from f in this.unitOfWork.Query<Fertigungsauftrag>() where f.Nummer == fertigungsauftragsnummer select f)
                .FirstOrDefault() ?? null;
        }
    }
}
